1. Field of the Invention
The present invention relates to a filter technique in render pipeline of three dimensional graphics processor, more particularly to a system and method wherein render pipeline is used to maintain scene depth relationship in three dimensional graphics, and can be applied on digital still cameras (DSC), digital video cameras (DV), personal digital assistants (PDA), mobile electronics, third generation cellular phones, portable cellular phones, and portable devices (e.g. smart phone).
2. Description of the Prior Art
In recent years, the market of mobile electronics has grown rapidly. Meanwhile, three dimensional graphics has became more and more important in mobile or portable devices, whose energy efficiency of the mobile graphics processors is the most crucial design challenge. It is shown that the amount of external memory access is the most crucial factor in power consumption. In the render pipeline of graphics processor, there are five types of memory access, Texture Read (TR), Depth buffer (Z-buffer) Read (ZR), Depth buffer (Z-buffer) Write (ZW), Color Read (CR), and Color Write (CW). Among these five memory bandwidth demands, the ZR bandwidth occupies at least 40%. It means the depth buffer bandwidth is the first critical part that should be optimized in a low power rendering pipeline.
U.S. Pat. No. 6,999,076 and U.S. patent application Ser. No. 10/790,953 show a Zmax algorithm to cull occluded fragments in render pipeline. The display region is segmented into several tiles. In each tile, the maximum depth value (Z-value), Zmax, is compared with the previous Zmax to cull occluded fragments. When the present Zmax is larger than the previous Zmax, all the fragments of the current tile will be culled. Morein's Zmax algorithm can remove redundant memory bandwidth and operation power of the occluded fragments. Möller proposed another algorithm in different point of view, Zmin algorithm, see e.g., “Graphics for the Masse: A Hardware Rasterization Architecture for Mobile Phones (SIGGRAPH 2003)”. The display region is segmented into several tiles. In each tile, the minimum Z-value, Zmin, is compared with previous Zmin to filter non-occluded fragments. When the present Zmin is smaller than the previous Zmin, all the fragments in the current tile can be treated as viewable fragments. Möller's Zmin algorithm can reduce the ZR bandwidth of the viewable fragments. Yu and Kim proposed a pixel-based depth-plane filter (DF) algorithm, see e.g. “A Hierarchical Depth Buffer for Minimizing Memory Bandwidth in 3D Rendering Engine: DEPTH FILTER (ISCAS 2003)”. A set of DF-flag is given in display coordinate (pixel-base). When a fragment's Z-value is smaller than the system depth plane (a given value), its corresponded DF-flag is set as “1”. However, when a fragment's Z-value is larger than the system depth plane, its corresponded DF-flag is fetched. If the fetched DF-flag is “1”, it means the current fragment is occluded by previous fragment and the current fragment should be culled.
Obviously, Morein's Zmax algorithm only filters the occluded fragments in tile base, and Möller's Zmin algorithm only filters the non-occluded fragments in tile base. Although Yu's and Kim's DF algorithm filter the occluded fragments in pixel-base, the filter performance really depends on the system-given depth plane. It is hard to gather the statistics of the depth information of all fragments to derive the optimal depth plane.